import calendar
import datetime


def check_year(year):
    if 4 < len(year) < 4:
        return (
            False,
            "❗Год рождения должен содержать 4 числовых символа! Попробуйте ввести заново:",
        )
    else:
        today = datetime.date.today()
        year_now = today.year
        try:
            if int(year) >= year_now:
                return (
                    False,
                    "❗Год рождения должен быть меньше текущего! Попробуйте ввести заново:",
                )
            else:
                return True, ""
        except ValueError:
            return (
                False,
                "❗Для ввода года рождения используйте только числовые символы. Попробуйте ввести заново:",
            )


def check_month(month):
    if 2 < len(month) < 1:
        return False, "❗Я не распознал месяц рождения. Попробуйте ввести заново:"
    else:
        try:
            if 0 >= int(month) > 12:
                return (
                    False,
                    "❗Введенное значение месяца рождения не может быть больше 12, а также меньше или равно 0. Попробуйте ввести заново:",
                )
            else:
                return True, ""
        except ValueError:
            return (
                False,
                "❗Для ввода месяца рождения используйте только числовые символы. Попробуйте ввести заново:",
            )


def check_day(day, year, month):
    if 2 < len(day) < 1:
        return False, "❗Я не распознал день рождения. Попробуйте ввести заново:"
    else:
        try:
            _, month_count = calendar.monthrange(year, month)
            if 0 >= int(day) > month_count:
                return (
                    False,
                    f"❗ Значение дня рождения не может быть больше {str(month_count)}, а также меньше или равно 0. Попробуйте ввести заново:",
                )
            else:
                return True, ""
        except ValueError:
            return (
                False,
                "❗Для ввода дня рождения используйте только числовые символы. Попробуйте ввести заново:",
            )
